package com.lm.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.HashMap;
import java.util.List;

/**
 * @author LM
 * @version 1.0
 * @description: TODO 居民类
 * @date 2025/9/20 09:59
 */
@Data
@TableName(value = "resident_basic_info")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Resident {

    @TableId(value = "resident_id",type = IdType.AUTO)
    private Integer residentId;  //居民信息唯一标识
    private String residentNumber;  //居民编号
    private String residentName;  //居民姓名
    private String residentAvatar;  //居民头像
    private String residentIdCard;  //身份证号
    private String residentPhone;  //手机号
    private String residentAddress;  //现居地址
    private String residentPassword;  //居民登录密码
    private String residentAdministrativeDivisions;  //行政区划，例如某某居委会
    private String residentGender;  //性别
    private String residentBirthDate;  // 出生日期
    private String residentPlace;  //籍贯
    private String residentNation;  // 民族
    private String residentEducation;  // 学历
    private String residentMaritalStatus;  // 婚姻状况
    private String residentOccupation;  // 职业
    private String residentWorkUnit;  // 工作单位
    private String residentEmergencyContact;  // 紧急联系人
    private String residentContactPhone;  // 紧急联系人手机号
    private String residentHouseholdType;  // 户籍类型
    private String residentMedicalType;  // 医疗类型
    private String residentDesignatedHospital;  // 指定医院
    private Integer residentStatus;  // 居民状态 (1启用，2禁用)

    @TableField(exist = false)
    private List<Integer> residentTags;  //存储居民标签
    @TableField(exist = false)
    private List<HashMap<String,Object>> familyMember;  //存储家庭成员id
    @TableField(exist = false)
    private List<String> tagsName; // 查询列表展示标签名称
    @TableField(exist = false)
    private Integer signStatus;  // 签约状态
    @TableField(exist = false)
    private String familyMemberRelationship;//家庭关系
}
